
package nccloud.arap.manual.aggmanualcostvo.util.rule;

import java.util.ArrayList;
import java.util.List;

import nc.impl.pubapp.pattern.rule.IRule;
import nc.vo.arap.manualcost.AggManualCostVO;
import nc.vo.arap.manualcost.ManualCostBVO;
import nc.vo.arap.manualcost.ManualCostCVO;
import nc.vo.arap.manualcost.ManualCostVO;
import nc.vo.pub.CircularlyAccessibleValueObject;
import nccloud.commons.collections.CollectionUtils;
import nccloud.commons.lang.ArrayUtils;

/**
* 非空校验
*/
public class AddDefaultValueRule implements IRule<AggManualCostVO> {

    @Override
    public void process(AggManualCostVO[] vos) {
        setDefaultValue(vos);
    }


    private void setDefaultValue(AggManualCostVO[] discountvos) {
        if (ArrayUtils.isEmpty(discountvos)) {
            return;
        }
        for (AggManualCostVO vo : discountvos) {
            nc.vo.arap.manualcost.ManualCostVO headervo = vo.getParentVO();
            List<CircularlyAccessibleValueObject> list = new ArrayList<CircularlyAccessibleValueObject>();
            CollectionUtils.addAll(list, (nc.vo.arap.manualcost.ManualCostBVO[]) vo.getChildren(nc.vo.arap.manualcost.ManualCostBVO.class));
            CollectionUtils.addAll(list, (nc.vo.arap.manualcost.ManualCostCVO[]) vo.getChildren(nc.vo.arap.manualcost.ManualCostCVO.class));
            if (list.isEmpty()) {
                continue;
            }
            for (CircularlyAccessibleValueObject itemvo : list) {
                if (null == itemvo.getAttributeValue(nc.vo.arap.manualcost.ManualCostVO.PK_GROUP)) {
                    itemvo.setAttributeValue(nc.vo.arap.manualcost.ManualCostVO.PK_GROUP, headervo.getPk_group());
                }
             }
        }
    }
}
